//
//  LBBaseTableViewController.swift
//  LBNewWeiBo
//
//  Created by bin on 15/10/26.
//  Copyright © 2015年 bin. All rights reserved.
//

import UIKit

class LBBaseTableViewController: UITableViewController {

    var userLogin = LBUserAccout.userLogin() //用户是否登录标志
    
    /**
        如果实现该方法，将不会从xib或storybord上加载视图
    */
    override func loadView() {
        // 使用三目运算符判断登录的情况
        userLogin ? super.loadView() : setupVisitorView()
    }
    
   private func setupVisitorView() {
    
    let visitorView = LBVisitorView()
     view = visitorView
    
    // 指定代理
    visitorView.visitorViewDelegate = self
    
    if self is LBHomeTableViewController {
        visitorView.startRotationAnimation()
        
        // KVO监听应用退到后台、前台
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "didEnterBackground", name: UIApplicationDidEnterBackgroundNotification, object: nil) // 进入后台
        
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "didBecomeActive", name: UIApplicationDidBecomeActiveNotification, object: nil)// 进入前台
        
        
    } else if self is LBMessageTableViewController
    {
        visitorView.setupInfo("visitordiscover_image_message", title: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
    } else if self is LBDiscoverTableViewController
    {
        visitorView.setupInfo("visitordiscover_image_message", title: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
    } else if self is LBPorfileTableViewController
    {
        visitorView.setupInfo("visitordiscover_image_profile", title: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
    }

    
    // 设置导航右侧登录按钮
    self.navigationItem.rightBarButtonItem  = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewLogin")
    
        // 设置导航左侧登录按钮
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewRegister")

    }
    
    // MAKR: - 通知方法
    func didEnterBackground() {
        // 暂停动画
        (view as! LBVisitorView).pauseAnimation()
    }
    
    func didBecomeActive() {
        // 继续动画
        (view as! LBVisitorView).resumeAnimation()
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

/**
*  类扩展
*/

// MARK: -使用 extension 让 LBBaseTableViewController 实现 LBVisitorViewDelegate 代理
extension LBBaseTableViewController : LBVisitorViewDelegate {
    
    /// 实现代理方法 :注册
    func visitorViewRegister() {
        print(__FUNCTION__)
    }
    /// 实现代理方法：登录
    func visitorViewLogin() {
    
        let controller = LBOauthViewController()
        
        // 控制器跳转
        presentViewController(UINavigationController(rootViewController:controller ), animated: true, completion: nil)
    
    }
    
}
